﻿var g_srv = "/gw/servlet/Srv";

/*=============== 读取页面对象函数 ===========*/
function GetObject(name)
{
    return document.all(name);
}
function GetValue(name)
{
    if(document.all(name)==null) 
    {
        alert("页面对象("+name+")不存在!");
    }
    
    if(document.all(name).type == "checkbox")
        return getCheckBoxValue(name);
       
    if(document.all(name).type == "radio")
        return GetRadioValue(name);
    
    return document.all(name).value;
}
function SetValue(name,v)
{   var values=document.getElementsByName(name);
    if(values==null) 
    {
        alert("页面对象("+name+")不存在!");
    }
    if(values.length==0){
    	return document.getElementsByName(name).value = v;
    }else{
    	return document.getElementsByName(name)[0].value = v;
    }
    
}
function SetAction(v)
{
    SetValue("action_code",v);
}

function GetInt(name,def)
{
    var v = GetValue(name);
    if(v==null || !isInteger(v))
    {
        return def;
    }
    return v;
}

function GetDouble(name,def)
{
    var v = GetValue(name);
    if(v==null || !isNumber(v))
    {
        return def;
    }
    return parseFloat(v);
}


function GetString(name,def)
{
    var obj = document.all(name);
    if(obj==null||obj=="undefined") return null;
    var v = document.all(name).value;
    if(v==null)
    {
        return def;
    }
    return v;
}


/*=============== 数据处理函数 ===========*/
function LTrim(s)
{ 
    for(var i=0;i<s.length;i++)
    {
      if(s.charAt(i)!=" ")
      {
          return s.substr(i,s.length-i);
      }
   }
   return "";
}
function RTrim(s)
{ 
    for(var i=s.length-1;i>=0;i--)
    {
      if(s.charAt(i)!=" ")
      {
          return s.substr(0,i+1);
      }
   }
   return "";
}
function Trim(s)
{
    return  RTrim(LTrim(s));
}

//判断一个字符串是否为空字符串
function isEmpty(s)
{
    return ""==Trim(s);
}

function LTrimZero(s)
{ 
    for(var i=0;i<s.length;i++)
    {
      if(s.charAt(i)!="0")
      {
          return s.substr(i,s.length-i);
      }
   }
   return "";
}

//判断一个email地址是否合法
function isValidEmail(inputVal) 
{
     inputStr = inputVal.toString()
     if (inputStr.charAt(0) == "@" || inputStr.charAt(0) == ".") return false ;
     if (inputStr.charAt(inputStr.length -1) == "@" ||
     inputStr.charAt(inputStr.length -1) == ".")
     {
     return false;
     }
     if (inputStr.indexOf("@") == -1 || inputStr.indexOf(".") == -1) return false;
     return true;
}


function isValidDate(year,month,day)
{
    year  = parseInt(year);
    month = parseInt(month);
    day   = parseInt(day);
    
    if ( year < 0 || month > 12 || day > 31 || month <=0 || day <=0 ) return false ;
    
    switch(month)
    {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:   
           return true ;
        case 4:
        case 6:
        case 9:
        case 11:
           if (day>30) return false ;
           return true ;
        case 2 :
          
           //闰年
           if (0==year%4 && (year%100)!=0 || 0==year%400)
           {
               if (day>29) return false ;
               return true ;
           }
           //非闰年 
           if (day>28) return false ;
           return true ;
        default:
           return false ;
    }                 
    
}

//判断一个变量是否是日期型
function  isDate(sDate)
{
    var   arrDate = sDate.split("-");
    if (arrDate.length!=3)  return false ;
   
    var year  = arrDate[0] ;
    var month = arrDate[1] ;
    var day   = arrDate[2] ;
    
    if( isEmpty(year) || isEmpty(month) || isEmpty(day)) return false;    
    if ( isNaN(year) || isNaN(month) || isNaN(day)) return false ;
    
    year  = parseInt(LTrimZero(year));
    month = parseInt(LTrimZero(month));
    day   = parseInt(LTrimZero(day));
    
    if ( year < 0 || month > 12 || day > 31 || month <=0 || day <=0 ) return false ;
    
    switch(month)
    {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:   
           return true ;
        case 4:
        case 6:
        case 9:
        case 11:
           if (day>30) return false ;
           return true ;
        case 2 :
          
           //闰年
           if (0==year%4 && (year%100)!=0 || 0==year%400)
           {
               if (day>29) return false ;
               return true ;
           }
           //非闰年 
           if (day>28) return false ;
           return true ;
        default:
           return false ;
    }                 
}

//判断一个变量是否是时间型
function isTime(sTime)
{
    var   arrTime = sTime.split(":");
    var   hour ;
    var   minute ;
    var   second ;
    
    if (arrTime.length>3)  return false ;
    
    if(arrTime.length==0)           // just  hour
    {
        hour = 0;
        minute=0;
        second=0;
    }
    if(arrTime.length==1)
    {
        hour = arrTime[0];
        minute=0;
        second=0;
    }
    if(arrTime.length==2)
    {
        hour = arrTime[0];
        minute=arrTime[1];
        second=0;
    }
    if(arrTime.length==3)
    {
        hour = arrTime[0];
        minute=arrTime[1];
        second=arrTime[2];
    }
    
    if ( isNaN(hour) || isNaN(minute) || isNaN(second)) return false ;
    
    hour  = parseInt(LTrimZero(hour));
    minute = parseInt(LTrimZero(minute));
    second   = parseInt(LTrimZero(second));
    
    if( hour<0 || hour>23 || minute<0 || minute>59 || second<0 || second>59) 
    {
        return false; //exit
    }
    return true;
}

function isDateTime(sDateTime)
{
    var   arrDateTime = sDateTime.split(" ");
    if(arrDateTime.length==1)
    {
        return isDate(arrDateTime[0]); //exit
    }
    if(arrDateTime.length==2)
    {
        return (isDate(arrDateTime[0]) && isTime(arrDateTime[1])); //exit
    }
    return false; //exit 
    
}

function FormatNumber(srcStr,nAfterDot)
{
　　var srcStr,nAfterDot;
　　var resultStr,nTen;
　　srcStr = ""+srcStr+"";
　　strLen = srcStr.length;
　　dotPos = srcStr.indexOf(".",0);
　　if (dotPos == -1){
　　　　resultStr = srcStr+".";
　　　　for (i=0;i<nAfterDot;i++){
　　　　　　resultStr = resultStr+"0";
　　　　}
　　　　return resultStr;
　　}
　　else{
　　　　if ((strLen - dotPos - 1) >= nAfterDot){
　　　　　　nAfter = dotPos + nAfterDot + 1;
　　　　　　nTen =1;
　　　　　　for(j=0;j<nAfterDot;j++){
　　　　　　　　nTen = nTen*10;
　　　　　　}
　　　　　　resultStr = Math.round(parseFloat(srcStr)*nTen)/nTen;
　　　　　　return resultStr;
　　　　}
　　　　else{
　　　　　　resultStr = srcStr;
　　　　　　for (i=0;i<(nAfterDot - strLen + dotPos + 1);i++){
　　　　　　　　resultStr = resultStr+"0";
　　　　　　}
　　　　　　return resultStr;
　　　　}
　　}
} 

function isNumber(inputVal) {
    oneDecimal = false;
    inputStr = inputVal.toString();
    if(isEmpty(inputStr)) return false;
    for (var i = 0; i < inputStr.length; i++) {
        var oneChar = inputStr.charAt(i);
        if (i == 0 && oneChar == "-") {
            continue;
        }
        if (oneChar == "." && !oneDecimal) {
            oneDecimal = true;
            continue;
        }
        if (oneChar < "0" || oneChar > "9") {
            return false;
        }
    }
    return true;
}

//////////////////////////////////////////////////////////
//Name:         isPosNumber
//Argument:     inputVal：输入的字符串
//Return:       
//Description:      是否正数字（包括小数）
//History:      modi by justin
//////////////////////////////////////////////////////////
function isPosNumber(inputVal) {
    oneDecimal = false;
    inputStr = inputVal.toString();
    if(isEmpty(inputStr)) return false;
    for (var i = 0; i < inputStr.length; i++) {
        var oneChar = inputStr.charAt(i);
        if (oneChar == "." && !oneDecimal) {
            oneDecimal = true;
            continue;
        }
        if (oneChar < "0" || oneChar > "9") {
            return false;
        }
    }
    return true;
}

function isInteger(inputVal) {
    inputStr = inputVal.toString()
    if(isEmpty(inputStr)) return false;
    for (var i = 0; i < inputStr.length; i++) {
        var oneChar = inputStr.charAt(i);
        //负整数
        if (i == 0 && oneChar == "-") {
            continue;
        }
        if (oneChar < "0" || oneChar > "9") {
            return false;
        }
    }
    return true;
}

/*=============== radio,checkbox,select处理函数 ===========*/
//检查checkbox是否选择
function hasChooseRadio(radName)
{
    var radios = document.all(radName);
    var i ;
    
    //没有选项
    if (null==radios) return false;
    
    //只有一个选项
    if (null==radios.length)
    {
        if (radios.checked) return true;
        return false ;      
    }
    
    //多个选项
    for(i=0;i<radios.length;i++)
    {
        if (radios[i].checked) return true;
    }
    return false ;
}

//在两个select之间交换数据

//private
function getSelectedOptions(nameSel)
{
    var exOptions = new Array();
    var objs = document.all(nameSel).options
    var count = 0 ;
    for(var i=0;i<objs.length;i++)
    {
        var obj = objs.item(i);
        if(obj.selected)
        {
            exOptions[exOptions.length]=obj; 
        }
    }
    return exOptions ;
}

//private
function addOptions(srcOptions,nameSel)
{
    for(var i=0;i<srcOptions.length;i++)
    {
        var srcOption = srcOptions[i] ;
        var oOption = document.createElement("OPTION");
        oOption.text  = srcOption.text;
        oOption.value = srcOption.value;
        document.all(nameSel).options.add(oOption);
    }
}

//private
function deleteSelected(nameSel)
{
    var objs = document.all(nameSel);
    for(var i=objs.length-1;i>=0;i--)
    {
        var obj = objs.item(i);
        if(obj.selected)
        {
            document.all(nameSel).options.remove(i);
        }
    }
}
function deleteSelect(nameSel)
{
    var objs = document.all(nameSel);
    /*
    for(var i=objs.length-1;i>=1;i--)
    {
        var obj = objs.item(i);
        document.all(nameSel).options.remove(i);
    }
    */
    while(objs.options.length>0)
    {
        objs.options.remove(objs.options.length-1);
    }
}

//得到下拉框的值
function GetSelectValue(n)
{
    var sel = document.all(n);
    var opts = sel.options;
    for(var i=0;i<opts.length;i++)
    {
        var opt = opts.item(i);
        if(opt.selected)
        {
            return opt.value;
        }
    }
    return "ERROR";
}   

function GetSelectMultValue(n)
{
    var rtn = new Array();
    var sel = document.all(n);
    var opts = sel.options;
    var j=0;
    for(var i=0;i<opts.length;i++)
    {
        var opt = opts.item(i);
        if(opt.selected)
        {
            rtn[j++] = opt.value;
        }
    }
    return rtn;
}

function SelectOption(name,value)
{
    var sel = document.all(name);
    var opts = sel.options;
    for(var i=0;i<opts.length;i++)
    {
        var opt = opts.item(i);
        if(opt.value==value)
        {
            opt.selected = true;
        }
    }
}
function SelectOptionByIndex(name,i)
{
    var sel = document.all(name);
    var opts = sel.options;
    var opt = opts.item(i);
    opt.selected = true;
}



//得到单选框的值
function GetRadioValue(n)
{
    var radios = document.all(n);
    var i ;
    
    //没有选项
    if (null==radios) return "ERROR";
    
    //只有一个选项
    if (null==radios.length)
    {
        if (radios.checked) return radios.value;
        return "ERROR" ;        
    }
    
    //多个选项
    for(i=0;i<radios.length;i++)
    {
        if (radios[i].checked) return radios[i].value;
    }
    return "ERROR" ;        
}


//public 
//param:   fromName   source select name
//         toName     target select name  
function exchangeSelect(fromName,toName)
{
    var exOptions = getSelectedOptions(fromName);
    addOptions(exOptions,toName);
    deleteSelected(fromName);
}

function getStringFromOptions(selectName,sepString)
{
    var r = "";
    var oOptions = document.all(selectName).options ;
    for(var i=0;i<oOptions.length;i++)
    {
        r += oOptions.item(i).value ;
        r += sepString;
    }
    return r;
}

function selectAllCheckBox(name)
{
    var cbs = document.all(name);
    var i ;
    
  //没有checkbox
  if (null==cbs) return;
  
  //只有一个checkbox
  if (null==cbs.length)
  {
    if(!cbs.disabled)
        cbs.checked = true;
    return ;
  }
    
  //多个checkbox
  for(i=0;i<cbs.length;i++)
  {
    if(!cbs[i].disabled)
      cbs[i].checked = true;
  }
}
function unselectAllCheckBox(name)
{
    var cbs = document.all(name);
    var i ;
    
  //没有checkbox
  if (null==cbs) return;
  
  //只有一个checkbox
  if (null==cbs.length)
  {
    cbs.checked = false;
    return ;
  }
    
  //多个checkbox
  for(i=0;i<cbs.length;i++)
  {
      cbs[i].checked = false;
  }
}
function chooseNum(name)
{
    var cbs = document.all(name);
    var i ;
    
  //没有checkbox
  if (null==cbs) return 0 ;
  
  //只有一个checkbox
  if (null==cbs.length)
  {
    if(cbs.checked) return 1 ;
    return 0 ;
  }
    
  var count = 0 ;  
  //多个checkbox
  for(i=0;i<cbs.length;i++)
  {
     if(cbs[i].checked) count++;
  }
  return count;
}

function checkOne(name)
{
    return (1==chooseNum(name));
}

function getCheckBoxArray(name)
{
    var oArray = new Array();
    var cbs = document.all(name);
    
    if(null == cbs) return oArray;
    
    if(null == cbs.length)
    {
        if(cbs.checked)
        {
            oArray[0] = cbs.value;
        }
    }
    else
    {
        var count = 0;
        for(var i = 0; i < cbs.length; i++)
        {
            if(cbs[i].checked)
            {
                oArray[count] = cbs[i].value;
                count++;
            }
        }
    }
    
    return oArray;
}


function getCheckBoxValue(name)
{
    if(checkOne(name))
    {
        var cbs = document.all(name);
        var i ;
        
      //没有checkbox
      if (null==cbs) return  ;
      
      //只有一个checkbox
      if (null==cbs.length)
      {
        if(cbs.checked) return cbs.value ;
        return  ;
      }
        
      //多个checkbox
      for(i=0;i<cbs.length;i++)
      {
         if(cbs[i].checked) return cbs[i].value;
      }
    }
    else
    {
        return "";
    }
}

function getCheckBoxValues(name)
{
    var values = new Array();
    
    var cbs = document.all(name);
    var i ;
    
  //没有checkbox
  if (null==cbs) return values ;
  
  //只有一个checkbox
  if (null==cbs.length)
  {
    if(cbs.checked) 
    {
        values[values.length] = cbs.value;
    }
    return values;
  }
    
  var count = 0 ;  
  //多个checkbox
  for(i=0;i<cbs.length;i++)
  {
     if(cbs[i].checked) 
     {
            values[values.length] = cbs[i].value;
     }
  }
  return values;
}

function getObjects(name)
{
    var values = new Array();
    
    var cbs = document.all(name);
    
    //没有
    if (null==cbs) return values ;
      
    //只有一个
    if (null==cbs.length)
    {
        values[0] = cbs;
        return values;
    }
    
    return cbs;     
}

/*=============== 输入焦点函数 ===========*/
function focusAndSelect(name)
{
    var obj = document.all(name);
    if (obj==null) return false;
    if (obj.type=="hidden") return false;
    obj.focus();
    if("text"==obj.type)
    {
        obj.select();
    }
}

/*=============== 数据检验函数 ===========*/
var public_description  = new CheckItem();       
var CHECK_ITEM_TYPE_INT = 1 ;
var CHECK_ITEM_TYPE_DOUBLE  = 2;
var CHECK_ITEM_TYPE_STRING = 3 ;
var CHECK_ITEM_TYPE_DATE    = 4 ;
var CHECK_ITEM_TYPE_EMAIL    = 5 ;
var CHECK_ITEM_TYPE_PASSWORD    = 6 ;
var CHECK_ITEM_TYPE_SAME        = 7;

var CHECK_ITEM_BIGGER        = 1 ;
var CHECK_ITEM_BIGGER_EQU    = 2 ;
var CHECK_ITEM_SMALLER        = 3 ;
var CHECK_ITEM_SMALLER_EQU    = 4 ;
var CHECK_ITEM_EQU  = 5 ;
var CHECK_ITEM_VS_NULL = 6 ;


//客户端检验字段
function  CheckItem(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11)
{
    this.disp_name = v1 ;   //显示用字段名
    this.item_name = v2 ;   //变量在form中的名字
    this.bNeed = v3;        //需要检查是否是必填字段吗? 
    this.bLen  = v4;        //需要检查字段的长度吗? 
    this.len = v5;          //需检查字段的长度
    this.bType=v6;          //需要检查字段的类型吗? 
    this.type = v7;         //参见宏定义 CHECK_ITEM_TYPE_* 
    this.min_value=v8;      //option,if type is INT or DOUBLE ,this may be has use
    this.max_value=v9;      //option 
    this.min_vs=v10;      //option,if type is INT or DOUBLE ,this may be has use
    this.max_vs=v11;      //option 
}
function getCheckItemByItemName(check_items, itemName)
{
    for(var i=0; i<check_items.length; i++)
    {
        if(check_items[i].item_name == itemName)
            return check_items[i];
    }
    return new CheckItem(itemName, itemName, false, false, 0, false, 0);
}
function CheckInput(check_items)
{
    for(var i=0;i<check_items.length;i++)
    {
        var item = check_items[i];
        if(item==null) continue;
        var disName = "[" + item.disp_name + "]";
        if(null==document.all(item.item_name))
        {
            alert("参数错误(System_Level):"+disName+"在页面中不存在!");
            return false;
        }
        
        //var val = document.all(item.item_name).value ;
        eval("var val = frm."+item.item_name+".value");
        if(item.bNeed)
        {
            if(isEmpty(val))
            {
                alert("输入错误:"+disName+"必须填写!");
            focusAndSelect(item.item_name);
                return false;
            }
        }
        if(item.bLen)
        {
            if(val.length>item.len)
            {
                alert("输入错误:"+disName+"的长度不能超过"+ item.len+"个字!");
                focusAndSelect(item.item_name);
                return false;
            }
        }
        if(item.bType)
        {
            switch(item.type)
            {
                case CHECK_ITEM_TYPE_DOUBLE:
                    if(!isNumber(val) && !isEmpty(val))
                    {
                        alert("输入错误:"+disName+"应是有效的数字,请重新填写");
                        focusAndSelect(item.item_name);
                        return false;
            }
            
                    if(item.min_value!=null)
                    {
                        if(item.min_vs==CHECK_ITEM_BIGGER)
                        {
                            if(val<=item.min_value)
                            {   
                                if(item.max_value!=null)
                                {
                                    alert("输入错误:"+disName+"超出合理范围("+item.min_value+"-"+item.max_value+"),请重新填写");
                                }
                                else
                                {
                                    alert("输入错误:"+disName+"超出合理范围(大于"+item.min_value+"),请重新填写");
                                }
                                        focusAndSelect(item.item_name);
                                        return false;
                        }
                        }
                      else if(item.min_vs==CHECK_ITEM_BIGGER_EQU)
                      {
                        if(val<item.min_value)
                            {   
                                if(item.max_value!=null)
                                {
                                    alert("输入错误:"+disName+"超出合理范围("+item.min_value+"-"+item.max_value+"),请重新填写");
                                }
                                else
                                {
                                    alert("输入错误:"+disName+"超出合理范围(大于等于"+item.min_value+"),请重新填写");
                                }
                                        focusAndSelect(item.item_name);
                                        return false;
                        }
                      }
                      
                    }
                    
                    if(item.max_value!=null)
                    {
                        if(item.max_vs==CHECK_ITEM_SMALLER)
                        {
                            if(val>=item.max_value)
                            {
                                alert("输入错误:"+disName+"超出合理范围("+item.min_value+"-"+item.max_value+"),请重新填写");
                                        focusAndSelect(item.item_name);
                                        return false;
                            }
                        }
                      else if(item.max_vs==CHECK_ITEM_SMALLER_EQU)
                      {
                        if(val>item.max_value)
                            {
                                alert("输入错误:"+disName+"超出合理范围("+item.min_value+"-"+item.max_value+"),请重新填写");
                                        focusAndSelect(item.item_name);
                                        return false;
                            }
                      }
                    }
                    break;
                case CHECK_ITEM_TYPE_INT:
                    if(!isInteger(val) && !isEmpty(val))
                    {
                        alert("输入错误:"+disName+"应是有效的整数,请重新填写");
                        focusAndSelect(item.item_name);
                        return false;
                    }
                    if(item.min_value!=null)
                    {
                        if(val<item.min_value)
                        {
                            if(item.max_value!=null)
                            {
                                alert("输入错误:"+disName+"超出合理范围("+item.min_value+"-"+item.max_value+"),请重新填写");
                            }
                            else
                            {
                                alert("输入错误:"+disName+"超出合理范围(大于"+item.min_value+"),请重新填写");
                            }
                                    focusAndSelect(item.item_name);
                                    return false;
                        }
                    }
                    if(item.max_value!=null)
                    {
                        if(val>item.max_value)
                        {
                            alert("输入错误:"+disName+"超出合理范围("+item.min_value+"-"+item.max_value+"),请重新填写");
                                    focusAndSelect(item.item_name);
                                    return false;
                        }
                    }
                    break;
                case CHECK_ITEM_TYPE_DATE:
                    if(!isEmpty(val) && !isDateTime(val))
                    {
                        alert("输入错误:"+disName+"格式不正确,请输入正确的日期(格式YYYY-MM-DD)!");
                        focusAndSelect(item.item_name);
                        return false;
                    }
                    break;
                case CHECK_ITEM_TYPE_EMAIL:
                    var regExp = /^[_a-zA-Z0-9\-]+(\.[_a-zA-Z0-9\-]*)*@[a-zA-Z0-9\-]+([\.][a-zA-Z0-9\-]+)+$/;
                    if(!regExp.test(val))
                    {
                        alert("输入错误:"+disName+"格式不正确,请输入正确的邮件地址!");
                        focusAndSelect(item.item_name);
                        return false;                       
                    }
                    break;
                case CHECK_ITEM_TYPE_PASSWORD:
                    var regExp = /.{6,16}/;
                    if(!regExp.test(val))
                    {
                        alert("输入错误:"+disName+"长度不正确,请输入6至16位密码!");
                        focusAndSelect(item.item_name);
                        return false;                   
                    } 
                    break;
                case CHECK_ITEM_TYPE_SAME:
                    var srcVal = document.all(document.all(item.item_name).same).value;
                    if(srcVal != val)
                    {
                        alert("输入错误:两次输入的"+getCheckItemByItemName(check_items, document.all(item.item_name).same).disp_name+"不一致!")
                        focusAndSelect(item.item_name);
                        return false;
                    } 
                    break;
                default:
                    alert("参数错误!");
                return false;
            }
        }
    }
    return true;
}

////////////////
var public_description  = new DateUtil();

function DateUtil(sDate)
{
    //var   arrDate = sDate.split("-");
    //var year  = arrDate[0] ;
    // var month = arrDate[1] ;
    //var day   = arrDate[2] ;
    //year  = parseInt(LTrimZero(year));
    //month = parseInt(LTrimZero(month));
    //day   = parseInt(LTrimZero(day));
    this.sDate = sDate;
    this.m_year = null;
    this.m_month = null;
    this.m_day = null;
}

function InitDateUtil(d)
{
    var   arrDate = d.sDate.split("-");
    var year  = arrDate[0] ;
    var month = arrDate[1] ;
    var day   = arrDate[2] ;
    
    year  = parseInt(LTrimZero(year));
    month = parseInt(LTrimZero(month));
    day   = parseInt(LTrimZero(day));
    
    d.m_year = year;
    d.m_month = month;
    d.m_day = day ;
}

//return :  0  date1==date2
//          1  date1> date2
//         -1  date < date2 
function CompDates(date1,date2)
{
    var d1 = new DateUtil(date1);InitDateUtil(d1);
    var d2 = new DateUtil(date2);InitDateUtil(d2);
            
    if(d1.m_year>d2.m_year) return 1;
    if(d1.m_year<d2.m_year) return -1;
    if(d1.m_month>d2.m_month) return 1;
    if(d1.m_month<d2.m_month) return -1;
    if(d1.m_day>d2.m_day) return 1;
    if(d1.m_day<d2.m_day) return -1;
    return 0;
}

//把一个日期转换成 Julian日
function toJulian(dat)
{
    var y = dat.m_year ;
    var m = dat.m_month;
    var d = dat.m_day ;
    
    var jy = y ;
    if (y < 0) jy++;
    var jm = m;
    if (m > 2) jm++;
    else
    {  jy--;
         jm += 13;
    }
  var jul = Math.floor(365.25 * jy) + Math.floor(30.6001*jm) + d + 1720995;

    // Gregorian Calendar adopted Oct. 15, 1582
    var IGREG = 15 + 31*(10+12*1582);
    
    // change over to Gregorian calendar
    if (d + 31 * (m + 12 * y) >= IGREG) 
    {  
        var ja = parseInt(0.01 * jy);
        jul += 2 - ja + parseInt(0.25 * ja);
    }
    return jul;
}

//得到两个日期间的天数
//input: date1,date2 , example : 2002-11-08
function getBetweenDays(date1,date2)
{
    var d1 = new DateUtil(date1);InitDateUtil(d1);
    var d2 = new DateUtil(date2);InitDateUtil(d2);
    return  toJulian(d1)-toJulian(d2);
}

/*=============== 日期选择器 ===========*/   

function ds_GetMonthDays(y,m)
{
    var numDays=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    var days = numDays[m-1];
    if (m==2 && y%4==0) ++days;
    return days;
}

function ds_GetYear(ds_name)
{
    return GetSelectValue(ds_name+"_y");
}

function ds_GetMonth(ds_name)
{
    return GetSelectValue(ds_name+"_m");
}

function ds_GetDay(ds_name)
{
    return GetSelectValue(ds_name+"_d");
}

function ds_OnYearChange(ds_name)
{
    ds_RenewDay(ds_name);
    ds_setDayValue(ds_name);
}

function ds_OnMonthChange(ds_name)
{
    ds_RenewDay(ds_name);
    ds_setDayValue(ds_name);
}

function ds_OnDayChange(ds_name)
{
    ds_setDayValue(ds_name);
}

function ds_setDayValue(ds_name)
{
    var y = ds_GetYear(ds_name);
    var m = ds_GetMonth(ds_name);
    var d = ds_GetDay(ds_name);
    if(m<10) m="0"+m;
    if(d<10) d="0"+d;
    var value = y + "-" + m + "-" + d;
    document.all(ds_name).value = value ;
}

function ds_SetCurrDate(ds_name,y,m,d)
{
    var ys = document.all(ds_name+"_y").options;
    var ms = document.all(ds_name+"_m").options;
    var ds = document.all(ds_name+"_d").options;
    
    //year
    for(var i=0;i<ys.length;i++)
    {
        var opt = ys.item(i);
        if(opt.value == y)
        {
            opt.selected = true;
            break;          
        }
    }
    
    //month
    for(var i=0;i<ms.length;i++)
    {
        var opt = ms.item(i);
        if(opt.value == m)
        {
            opt.selected = true;
            break;
        }
    }
    
    //day
    for(var i=0;i<ds.length;i++)
    {
        var opt = ds.item(i);
        if(opt.value == d)
        {
            opt.selected = true;
            break;
        }
    }
    
}

function ds_RenewDay(ds_name)
{
    var y = ds_GetYear(ds_name);
    var m = ds_GetMonth(ds_name);
    var d = ds_GetDay(ds_name);
    var days = ds_GetMonthDays(y,m);
    
    var objs = document.all(ds_name+"_d").options;
    
    //remove all options
    for(var i=objs.length-1;i>=0;i--)
    {
        document.all(ds_name+"_d").options.remove(i);
    }
    
    //add options
    if( d>days) d=days;
    
    for(var i=0;i<days;i++)
    {
        var oOption = document.createElement("OPTION");
        var v_value = i+1
        oOption.text  = v_value;
        oOption.value = v_value; 
        if( i+1 == d)
        {
            oOption.selected = true;
        }
        document.all(ds_name+"_d").options.add(oOption);
    }
}

function ds_AddDateSelector()
{
    var len= ds_AddDateSelector.arguments.length;
    if(len<=0) 
    { 
        alert("ERROR!!!");
        return ;
    }   

    var ds_name;
    var y ;
    var m ;
    var d ;
    var curr_date ;
    if(len==1)
    {
        ds_name = ds_AddDateSelector.arguments[0];
        today=new Date();
        y = today.getYear();
        m = today.getMonth()+1;
        d = today.getDate();
    }
    else
    {
        ds_name = ds_AddDateSelector.arguments[0];
        y = ds_AddDateSelector.arguments[1];
        m = ds_AddDateSelector.arguments[2];
        d = ds_AddDateSelector.arguments[3]; 
    }
    
    curr_date = y + "-" ;
    if(m<10) 
    {
        curr_date += "0" + m + "-";
    }
    else
    {
        curr_date += m + "-" ; 
    }
    if(d<10)
    {
        curr_date += "0" + d ;      
    }
    else
    {
        curr_date += d ;        
    }
    //curr_date = y + "-" + m + "-" + d ;
        
    var s = "<input type=hidden name=\""+ds_name+"\" value=\""+curr_date+"\">"+
            "<select name=\""+ds_name+"_y\" class=\"input\" onchange=\"ds_OnYearChange(\'"+ds_name+"\');\">"+
            "   <option value=\"2000\">2000</option>"+
            "   <option value=\"2001\">2001</option>"+
            "   <option value=\"2002\">2002</option>"+
            "   <option value=\"2003\">2003</option>"+
            "   <option value=\"2004\">2004</option>"+
            "   <option value=\"2005\">2005</option>"+
            "   <option value=\"2000\">2006</option>"+
            "   <option value=\"2001\">2007</option>"+
            "   <option value=\"2002\">2008</option>"+
            "   <option value=\"2003\">2009</option>"+
            "   <option value=\"2004\">2010</option>"+
            "</select>"+
            "年 "+
            "<select name=\""+ds_name+"_m\" class=\"input\" onchange=\"ds_OnMonthChange(\'"+ds_name+"\');\">"+
            "   <option value=\"1\">01</option>"+
            "   <option value=\"2\">02</option>"+
            "   <option value=\"3\">03</option>"+
            "   <option value=\"4\">04</option>"+
            "   <option value=\"5\">05</option>"+
            "   <option value=\"6\">06</option>"+
            "   <option value=\"7\">07</option>"+
            "   <option value=\"8\">08</option>"+
            "   <option value=\"9\">09</option>"+
            "   <option value=\"10\">10</option>"+
            "   <option value=\"11\">11</option>"+
            "   <option value=\"12\">12</option>"+
            "</select>"+
            "月 "+
            "<select name=\""+ds_name+"_d\"  class=\"input\" onchange=\"ds_OnDayChange(\'"+ds_name+"\');\">"+
            "   <option value=\"1\">01</option>"+
            "   <option value=\"2\">02</option>"+
            "   <option value=\"3\">03</option>"+
            "   <option value=\"4\">04</option>"+
            "   <option value=\"5\">05</option>"+
            "   <option value=\"6\">06</option>"+
            "   <option value=\"7\">07</option>"+
            "   <option value=\"8\">08</option>"+
            "   <option value=\"9\">09</option>"+
            "   <option value=\"10\">10</option>"+
            "   <option value=\"11\">11</option>"+
            "   <option value=\"12\">12</option>"+
            "   <option value=\"13\">13</option>"+
            "   <option value=\"14\">14</option>"+
            "   <option value=\"15\">15</option>"+
            "   <option value=\"16\">16</option>"+
            "   <option value=\"17\">17</option>"+
            "   <option value=\"18\">18</option>"+
            "   <option value=\"19\">19</option>"+
            "   <option value=\"20\">20</option>"+
            "   <option value=\"21\">21</option>"+
            "   <option value=\"22\">22</option>"+
            "   <option value=\"23\">23</option>"+
            "   <option value=\"24\">24</option>"+
            "   <option value=\"25\">25</option>"+
            "   <option value=\"26\">26</option>"+
            "   <option value=\"27\">27</option>"+
            "   <option value=\"28\">28</option>"+
            "   <option value=\"29\">29</option>"+
            "   <option value=\"30\">30</option>"+
            "   <option value=\"31\">31</option>"+
            "</select>"+
            "日";
    document.write(s);
    ds_RenewDay(ds_name);
    ds_SetCurrDate(ds_name,y,m,d);
}

/*=============== 键盘处理函数 ===========*/
//key support
var g_esc_handler = null ;
var g_return_handler = null;
var g_submit_handler = null; //ctrl+return

function setFocus(name)
{
    document.all(name).focus();
    selectInput(name);
}
function selectInput(name)
{
    var ele = document.all(name) ;
    
    if("text"==ele.type)
    {
        ele.select();
    }
}

function key_SetFocus(key_tab)
{
    var ele = key_FindKeyElement(key_tab);
    if(ele!=null)
    {
        ele.focus();
        if("text"==ele.type)
        {
            ele.select();
        }
        
    }
}

function key_FindKeyElement(key_tab)
{
    var objs = document.all ;
    for(var i = 0; i < objs.length; i++)
    {
        var obj = objs.item(i) ;
        
        if(obj.key_tab!=null)
        {
            var kt = parseInt(obj.key_tab);
            if(kt == key_tab)
            {
                return obj ;
            }
        }
    }
    return null;
}

function key_OnEsc()
{
     window.close();
}
function key_OnSubmit()
{
        return ;
}

function key_OnReturn()
{
    
    var ele = event.srcElement;
    
    if(ele.key_callback!=null)
    {
        eval(ele.key_callback+"();");
        //return false;
        return ;
    }   
    
    //ingore editbox
    if("textarea"==ele.type) return ;
    
    if(ele.key_tab != null)
    {
        var kt = parseInt(ele.key_tab);
        var next_ele = key_FindKeyElement(kt+1);
        if(next_ele!=null)
        {
            next_ele.focus();           
            if("text"==next_ele.type)
            {
                next_ele.select();
            }
        }
    }
}

//just support esc,return 

function key_Handler()
{
    var k = event.keyCode ;
    if(k==27)  //esc
    {
        if(g_esc_handler!=null)  return g_esc_handler();
    }
    if(k==13)  //return
    {
        if(event.ctrlKey) //commit key
        {
            if(g_submit_handler!=null) return g_submit_handler();
        }
        else              //return key
        {
            if(g_return_handler!=null) return g_return_handler();
        }
    }
}

function key_RegEscHandler(func)
{
    if(func!=null)
    {
        g_esc_handler = func ;
    }
    else
    {
        g_esc_handler = key_OnEsc ; 
    }
}

function key_RegReturnHandler(func)
{
    if(func!=null)
    {
        g_return_handler = func ;
    }
    else
    {
        g_return_handler = key_OnReturn ;
    }
}

function key_RegSubmitHandler(func)
{
    if(func!=null)
    {
        g_submit_handler = func ;
    }
    else
    {
        g_submit_handler = key_OnSubmit ;
    }
}

function key_InitDefault()
{
    key_RegReturnHandler(null);
}
document.onkeydown = key_Handler ;      // 捕获click事件


/*=============== 窗口函数 ===========*/
function viewWin(sUrl)
{
    window.open(sUrl,"_blank","height=550,width=600,left=250,top=120,menubar=no,scrollbars=yes");
}
function viewWin2(sUrl)
{
    window.open(sUrl,"_blank","height=550,width=600,left=250,top=120,menubar=no,scrollbars=yes");
}
function viewWin3(sUrl)
{
    window.open(sUrl,"_blank","height=600,width=800,left=20,top=20,menubar=no,scrollbars=yes");
}
function viewWinMax(sUrl)
{
    window.open(sUrl,"_blank","height="+(window.screen.availHeight-50)+",width="+(window.screen.availWidth-80)+",left=20,top=20,menubar=no,scrollbars=yes");
}
function viewWinEx(sUrl,width,height,left,top)
{
    window.open(sUrl,"_blank","height="+height+",width="+width+",left="+left+",top="+top+",menubar=no,scrollbars=yes");
}
function searchWin(sUrl)
{
    window.open(sUrl,"_blank","height=600,width=800,left=150,top=20,menubar=no,scrollbars=yes");
}
/*
function selectDate_(name)
{
    var d = GetValue(name);     
    var k=showModalDialog("/v2/back/inc_jsp/date/selectdate.htm",d,"dialogWidth:306px;status:no;dialogHeight:335px");
    if(k!=null) SetValue(name,k);
}
*/
/*=============== XML函数 ===========*/

var gXmlDebug = false;  //是否显示得到的xml文本,调试用。

//format:<order><Id>1000</Id><Name>abc</Name></order>
function xmlToObject(xml)
{
    var doc = new ActiveXObject("Msxml2.DOMDocument");
    if(!doc.loadXML(xml))
    {
         return null;
    }
    var rootNode = doc.firstChild;
    var nodes = rootNode.childNodes;
    var i = 0 ;
    var obj = new Object();
    for(i=0;i<nodes.length;i++)
    {
        var node = nodes.nextNode();
        eval("obj."+node.nodeName+"=node.text;");
    }
    return obj;
}

//format:<orders>对象文本</orders>
function xmlToObjects(xml)
{
    //alert("xml: " + xml)
    var doc = new ActiveXObject("Msxml2.DOMDocument");
    if(!doc.loadXML(xml))
    {
         return null;
    }
    var rootNode = doc.firstChild;
    var nodes = rootNode.childNodes;
    var i = 0 ;
    var obj = new Array();
    
    var myObj = null;    
    for(i=0;i<nodes.length;i++)
    {
        var node = nodes.nextNode();
        myObj = new Object();
        myObj = xmlToObject(node.xml);
        
        obj[obj.length] = myObj;
    }
    return obj;
}

function getXml(url)
{
    var doc = new ActiveXObject("Msxml2.XMLHTTP");
    doc.open("POST",url,false,null,null);
    doc.send("");
    s = doc.responseText; 
    if(true==gXmlDebug) alert(s);
    return s;
}

function urlToObject(url)
{
    var xml = getXml(url);
    var obj = xmlToObject(xml);
    return obj;
}

function urlToObjects(url)
{
    var xml = getXml(url);
    var obj = xmlToObjects(xml);
    return obj;
}

//client<->server

//add by twb start
//清除页面查询条件
function doClearEventbak()
{
    var objs = document.all;
    var i ;
    var obj ;
    var name;
    for(i=0;i<objs.length;i++)
    {
        obj = objs.item(i);
        name = obj.name;
        if(null==name||"undefined"==name||""==name) continue;
        if("i_PageNum"==name||"i_PageSize"==name) continue;
        if(name.substr(0,2)!="i_") continue;
        obj.value = "";
    }
}


function doClearEvent()
{
    var objs = document.all;
    var i ;
    var obj ;
    var name;
    for(i=0;i<objs.length;i++)
    {
        obj = objs.item(i);
        name = obj.name;
        if(null==name||"undefined"==name||""==name) continue;
        if("i_PageNum"==name||"i_PageSize"==name) continue;
        if(name.substr(0,2)!="i_") continue;

        if(obj.type=="select-one") //单选下拉框
        {
            if(obj.options!=null && obj.options.length>1)
            {
                
                obj.value = "" ;
                if (window.selectOnChange != null)
                    selectOnChange(obj.name);
            }
        }
        else if (obj.type=="checkbox")  //check box框
        {
            if (obj.checked == true)
                obj.checked = false;        
        }
        else if (obj.type=="radio")   // radio
        {
            continue;
        }
        else
        {
            obj.value = "";
        }
    }
    
}
                
//added by warlish start
function closeFrame(){
    if (window.js_flag_is_selected && js_flag_is_selected == 1 && !confirm("确认关闭窗口？")){
        return false;
    }
    if (window.top.opener && !window.top.opener.closed){
        if (window.top.opener.stor_toReloadPage){
            window.top.opener.stor_toReloadPage();
        }else if (window.top.opener.pageReload){
            window.top.opener.pageReload() ;
        }
        window.top.opener.focus();
    }
    window.top.close();
}
//added by warlish end

function selectAll(isCheck, flag)
{
    if(isCheck)
    {
        selectAllCheckBox(flag);
    }
    else
    {
        unselectAllCheckBox(flag);
    }
}
function selectAllCheck(obj){
    selectAll(obj.checked);
}
function evalForm(formName)
{
    var isLeapYear=false; /*闰年[二月为29天]*/
    var isSmallMonth=false; /*小月[该月为30天]*/
    
    //alert("test");
    if (!document.forms(formName)) return false;
    
    for (i=0;i<document.forms(formName).length;i++) 
    {
        
        objTgt = document.forms(formName).item(i);      
        if (objTgt.MUST==1&&objTgt.value.trim()=='')    //判断必须输入
        {           
            if (objTgt.disabled==true)
            {
                //return false  
            }
            else
            {
                objTgt.focus();
                objTgt.select();
                if(objTgt.title!="")
                {
                    errAlert ("必填项 ["+objTgt.title+"] 未填写 !","为了保证数据的完整性，系统要求某些值必须填写，\n现在您没有填写其中的 ["+objTgt.title+"] 这一项。","重新填写。");
                }
                else
                {
                    errAlert("必填项未填写 !","为了保证数据的完整性，系统要求某些值必须填写，\n现在您没有填写其中的某几项。","重新填写。");
                }
                
                return false;
            }
        }
        
        if(objTgt.value!='')        //如果不为空
        {
            if (objTgt.isBigDBSize==1)  //判断是否大于数据库的长度
            {
                if (isBigSize(objTgt.value.trim(),objTgt.DBSize))
                {
                    objTgt.focus();
                    objTgt.select();
                    if(objTgt.title!="")
                    {
                        errAlert ("["+objTgt.title+"] 项中输入数据过长，长度应该不大于"+objTgt.DBSize+" !","为了保证数据的准确性，系统要求要求填写有效数据，\n现在您在 ["+objTgt.title+"] 项中没有填写有效的数据。","重新填写。");
                    }
                    else
                    {
                        errAlert ("输入数据过长!","为了保证数据的有效性，系统要求某些值必须填写有效数据，\n现在您在某几项中填写的数据无效。","重新填写。");
                    }
                    return false;
                }
            }
            
            if (objTgt.isEml==1)    //判断是否Email
            {
                if (!isEML(objTgt.value.trim()))
                {
                    objTgt.focus();
                    objTgt.select();
                    if(objTgt.title!="")
                    {
                        errAlert ("["+objTgt.title+"] 项中应该填写有效的数据 !","为了保证数据的准确性，Email地址的正确格式为abc@def.gh，\n现在您在 ["+objTgt.title+"] 项中没有填写有效的数据。","重新填写。");
                    }
                    else
                    {
                        errAlert ("应该填写有效数据 !","为了保证数据的有效性，系统要求某些值必须填写有效数据，\n现在您在某几项中填写的数据无效。","重新填写。");
                    }
                    return false;
                }
            }
            
            if (objTgt.isPin==1)    //判断是否身份证
            {
                if (!isPIN(objTgt.value.trim()))
                {
                    objTgt.focus();
                    objTgt.select();
                    if(objTgt.title!="")
                    {
                        errAlert ("["+objTgt.title+"] 项中应该填写身份证号码 !","为了保证数据的准确性，系统要求要求填写有效数据，\n现在您在 ["+objTgt.title+"] 项中没有填写有效的数据。","重新填写。");
                    }
                    else
                    {
                        errAlert ("应该填写身份证号码!","为了保证数据的有效性，系统要求某些值必须填写有效数据，\n现在您在某几项中填写的数据无效。","重新填写。");
                    }
                    return false;
                }
            }

            if (objTgt.hasMinLength==1) //判断是否有最小长度
            {
                var vTemp = objTgt.value.trim();
                if(vTemp.length < objTgt.minLength)
                {
                    objTgt.focus();
                    objTgt.select();
                    errAlert("["+objTgt.title+"]的长度必须大于"+objTgt.minLength+"位 !","为了保证数据的有效性，系统要求某些值必须填写有效数据，\n现在您在某几项中填写的数据无效。","重新填写。");
                    return false;
                }
            }

            if (objTgt.isPostalCode==1)   //判断输入是否为邮政编码
            {
                if (isNumber(objTgt))
                {
                    if (objTgt.value.length != 6)
                    {
                        objTgt.focus();
                        objTgt.select();
                        errAlert("邮政编码的长度不正确!","为了保证数据的有效性，系统要求某些值必须填写有效数据，\n现在您在某几项中填写的数据无效。","重新填写。");
                        return false;
                    }
                }else{
                    return false;
                }
            }

            if (objTgt.isWebSite==1)   //判断输入是否为www地址
            {
                var vTemp = objTgt.value.trim();
                if( (vTemp.substring(0,7)) != "http://" )
                {
                    objTgt.focus();
                    objTgt.select();
                    errAlert("主页地址必须以'http://'开头!","为了保证数据的有效性，系统要求某些值必须填写有效数据，\n现在您在某几项中填写的数据无效。","请在地址前面添加'http://'。");
                    return false;
                }
            }

            if (objTgt.isTel==1)    //判断输入是否为电话号码
            {
                var vTemp = objTgt.value.trim();
                
                if (vTemp.charAt(3)||vTemp.charAt(4)=="-")
                {
                    vTemp = vTemp.replace("-","");
                    
                    if ( !isNaN(vTemp) )
                    {                       
                        if ( vTemp.length < 10 || vTemp.length > 12 )
                        {
                            errAlert( "["+objTgt.title+"]的长度不正确!","为了保证数据的有效性，系统要求某些值必须填写有效数据，\n现在您在某几项中填写的数据无效。","请按正确格式重新填写。");
                            return false;
                        }
                    }
                    else
                    {
                        errAlert( "["+objTgt.title+"]必须为数字!","为了保证数据的有效性，电话号码的格式应为\"区号-电话号码\"，\n如\"021-47362843\"。","请按正确格式重新填写。");
                        return false;                   
                    }
                }
                else 
                {               
                    errAlert( "["+objTgt.title+"]的格式填写不正确!","为了保证数据的有效性，电话号码的格式应为\"区号-电话号码\"，\n如\"021-47362843\"。","请按正确格式重新填写。");
                    return false;
                }
            }
            
            if (objTgt.isIllegal==1){   //判断输入是否为合法字符           
                var vTemp = objTgt.value.trim();
                var vDetermine = isIllegal(vTemp);
                if(!vDetermine){
                    objTgt.focus();                 
                    objTgt.select();
                    if(objTgt.title!="")
                    {
                        errAlert ("["+objTgt.title+"] 项中应该输入合法字符 !","为了保证数据的准确性，系统要求某些值必须填写有效数据，\n现在您在 ["+objTgt.title+"] 项中没有填写有效数据。","请重新输入。");
                    }
                    else
                    {
                        errAlert("输入非法字符!","为了保证数据的有效性，系统要求某些值必须填写有效数据，\n现在您在某几项中填写的数据无效。","请重新输入。");
                    }
                    
                    return false;
                }
            }
                
            if (objTgt.isNumeric==1)    //判断输入是否为数字
            {
                if (isNaN(objTgt.value))//float
                {
                    objTgt.focus();
                    objTgt.select();
                    if(objTgt.title!="")
                    {
                        errAlert ("["+objTgt.title+"] 项中应该填写数字 !","为了保证数据的准确性，系统要求某些值必须填写数字，\n现在您在 ["+objTgt.title+"] 项中没有填写数字。","重新填写。");
                    }
                    else
                    {
                        errAlert ("应该填写数字 !","为了保证数据的准确性，系统要求某些值必须填写数字，\n现在您在某几项中没有填写数字。","重新填写。");
                    }
                    return false;
                }
                
                if(objTgt.isInt==1) //int
                {
                    var objTgtIntValue = objTgt.value;
                    var startPos = objTgtIntValue.indexOf("."); 
                    if (startPos!=-1)
                    {
                        objTgt.focus();
                        objTgt.select();
                        if(objTgt.title!="")
                        {
                            errAlert ("["+objTgt.title+"] 项中应该填写整型数字 !","为了保证数据的准确性，系统要求某些值必须填写整型数字，\n现在您在 ["+objTgt.title+"] 项中没有填写整型数字。","重新填写。");
                        }
                        else
                        {
                        errAlert ("应该填写整型数字 !","为了保证数据的准确性，系统要求此值必须填写整型数字，\n现在您在此项中没有填写整型数字。","重新填写。");
                        }
                        return false;
                    }   
                }
                    
                var objTgtValue=new Number(objTgt.value);
                var maxV=objTgt.maxValue;
                var minV=objTgt.minValue;
                
                if(objTgt.isPow==1)
                {
                    if (Math.abs(objTgtValue)>=Math.pow(10,maxV)||Math.abs(objTgtValue)<Math.pow(10,(minV-1)))
                    {
                        objTgt.focus();
                        objTgt.select();
                        if(objTgt.title!="")
                        {
                            errAlert ("["+objTgt.title+"] 项中所填数字超出规定范围!","现在您在 ["+objTgt.title+"] 项中所填数字超出规定范围。","重新填写。");
                        }
                        else
                        {
                        errAlert ("所填数字超出规定范围!","现在您在 项中所填数字超出规定范围。","重新填写。");
                        }
                        return false;
                    }
                }
                else
                {
                    if(objTgtValue.valueOf()>maxV||objTgtValue.valueOf()<minV)
                    {
                        objTgt.focus();
                        objTgt.select();
                        if(objTgt.title!="")
                        {
                            errAlert ("["+objTgt.title+"] 项中所填数字超出规定范围!","现在您在 ["+objTgt.title+"] 项中所填数字超出规定范围。","重新填写。");
                        }
                        else
                        {
                        errAlert ("所填数字超出规定范围!","现在您在 项中所填数字超出规定范围。","重新填写。");
                        }
                        return false;
                    }
                }
            }
            
            //是否为整数
            if(objTgt.isInt==1) //int
            {
                var objTgtIntValue = objTgt.value;
                var startPos = objTgtIntValue.indexOf("."); 
                if (startPos!=-1 || isNaN(objTgt.value))
                {
                    objTgt.focus();
                    objTgt.select();                    
                    if(objTgt.title!="")
                    {
                        errAlert ("["+objTgt.title+"] 项中应该填写整型数字 !","为了保证数据的准确性，系统要求某些值必须填写数字，\n现在您在 ["+objTgt.title+"] 项中没有填写数字。","重新填写。");
                    }
                    else
                    {
                        errAlert ("应该填写整型数字 !","为了保证数据的准确性，系统要求某些值必须填写整型数字，\n现在您在某几项中没有填写整型数字。","重新填写。");
                    }
                    return false;
                }   
            }
            
            if (objTgt.isDate==1)
            {//判断日期
                var inDate=objTgt.value;

                if (inDate.length>=6 && inDate.length<=10 && inDate.indexOf("-")!=-1 && inDate.indexOf("-")!=inDate.lastIndexOf("-") && inDate.substring(inDate.indexOf("-")+1,inDate.lastIndexOf("-")).indexOf("-")==-1){
                    var inYear=parseInt(inDate.substring(0,inDate.indexOf("-")));
                    var inMonth=inDate.substring(inDate.indexOf("-")+1,inDate.lastIndexOf("-"));
                        if (inMonth.substring(0,1)=="0" && inMonth.length>1)
                            inMonth=inMonth.substring(1,inMonth.length);
                        inMonth=parseInt(inMonth);
                    var inDay=inDate.substring(inDate.lastIndexOf("-")+1,inDate.length);
                        if (inDay.substring(0,1)=="0" && inDay.length>1)
                            inDay=inDay.substring(1,inDay.length);
                        inDay=parseInt(inDay);
                    
                    if (inYear && !(isNaN(inYear)) && inYear.toString().length==4){
                        var year=inYear;
                        isLeapYear=judgeLeapYear(inYear);
                    }else if(inYear.toString().length!=4){
                        objTgt.focus();
                        objTgt.select();
                        errAlert("对不起，系统需要四位年 !","为了保证日期存储的准确性，系统要求所有的日期输入都使用四位数字表示年份，\n可是您在 ["+objTgt.title+"] 项中没有使用四位年输入。","重新输入。");
                        return false;
                    }else{
                        objTgt.focus();
                        objTgt.select();
                        errAlert("年份填写有误 !","","");
                        return false;
                    }
                    
                    if (inMonth && !(isNaN(inMonth)) && inMonth<=12 && inMonth >=1){
                        var month=inMonth;
                        isSmallMonth=judgeSmallMonth(inMonth);
                    }else{
                        objTgt.focus();
                        objTgt.select();
                        errAlert("月份填写有误 !","表示月份的数字必须处于1到12之间，可是您在 ["+objTgt.title+"] 项中填写的 "+inMonth+" 显然不在这个范围内。","重新填写。");
                        return false;
                    }

                    if (inDay && !(isNaN(inDay)) && inDay>=1 && (month==2?(isLeapYear?inDay<=29:inDay<=28):(isSmallMonth?inDay<=30:inDay<=31))){
                        var day=inDay;
                    }else{
                        objTgt.focus();
                        objTgt.select();
                        errAlert("日期填写有误 !","表示日期的数字必须处于1到31之间，而且必须满足闰年和大小月规则，\n可是您在 ["+objTgt.title+"] 项中填写的 "+inDay+" 显然不满足要求。","重新填写。");
                        return false;
                    }
                        
                    var inputDate=new Date();
                    if (!(Date.parse(month + "-" + day + "-" + year))){
                        //alert("error!");
                        objTgt.focus();
                        bjTgt.select();
                        errAlert("日期填写有误 !","为了保证日期存储的准确性，系统要求所有的日期输入都按照 YYYY-MM-DD 的格式输入，\n可是您在 ["+objTgt.title+"] 项中的输入值 ["+objTgt.value+"] 不满足输入要求。","重新输入。");
                        return false;
                    }
                    
                }else{
                    objTgt.focus();
                    objTgt.select();
                    errAlert("您输入的不是一个完整的日期值 !","为了保证日期存储的准确性，系统要求所有的日期输入都按照 YYYY-MM-DD 的格式输入，\n可是您在 ["+objTgt.title+"] 项中的输入值 ["+objTgt.value+"] 不满足输入要求。","重新输入。");
                    return false;
                }
            }
        }
    
    }
    return true;
}

/*=============== 打印函数 ===========*/
function printsetup()
{ 
    wb.execwb(8,1); 
} 
function printpreview()
{ 
  wb.execwb(7,1); 
} 

function printit() 
{ 
  if (confirm('确定打印吗？')) 
  { 
    wb.execwb(6,6) 
  } 
} 

/*===========层的隐藏和展开============*/
function fShowHideDiv(div)
{
    var divLayer = document.all(div);
    var divImage = document.all(div+"_img");
    divLayer.style.display = (divLayer.style.display == "none" ? "block" : "none");
    divImage.src = "/v2/back/index/images/"+ (divLayer.style.display == "none" ? "itemclose.gif" : "itemexpand.gif");
}

function ShowMenu()
{
    parent.frame_set.cols = "181,13,*";
}
function HideMenu()
{
    parent.frame_set.cols = "0,13,*";
}



//显示层
//locate type
var LOCATE_LEFT_TOP     = 1 ;
var LOCATE_LEFT_BOTTOM  = 2 ;
var LOCATE_RIGHT_TOP    = 3 ;
var LOCATE_RIGHT_BOTTOM = 4 ;
var LOCATE_CENTER       = 5 ;

function ui_LocateTarget(src,target,type)
{
   var left; 
   var top ;
   var parent ;
   var offWidth = 0;
   var offHeight = 0;
   
   switch (type)
   {
       case LOCATE_LEFT_TOP :
            offWidth = 0; 
            offHeight = 0; 
            break ;        
       case LOCATE_LEFT_BOTTOM :
            offWidth = 0; 
            offHeight = src.offsetHeight; 
            break ;
       case LOCATE_RIGHT_TOP :
            offWidth = src.offsetWidth; 
            offHeight = 0; 
            break ;
       case LOCATE_RIGHT_BOTTOM :
            offWidth = src.offsetWidth; 
            offHeight = src.offsetHeight; 
            break ;
       case LOCATE_CENTER :
            offWidth = src.offsetWidth/2; 
            offHeight = src.offsetHeight/2; 
            break ;
       default:
            break ;
   }
   parent = src.offsetParent;
   left =  parent.offsetLeft + src.offsetLeft + offWidth ;
   top  =  parent.offsetTop  + src.offsetTop + offHeight;

   while(true)
   {
        if("BODY"==parent.tagName)  break;
        parent = parent.offsetParent ;
        left += parent.offsetLeft ;
        top  += parent.offsetTop;
   }
   target.style.left = left ;
   target.style.top = top ;
}


/*========== 格式化数字   =============*/
function FormatNumber(srcStr,nAfterDot){
　　var srcStr,nAfterDot;
　　var resultStr,nTen;
　　srcStr = ""+srcStr+"";
　　strLen = srcStr.length;
　　dotPos = srcStr.indexOf(".",0);
　　if (dotPos == -1){
　　　　resultStr = srcStr+".";
　　　　for (i=0;i<nAfterDot;i++){
　　　　　　resultStr = resultStr+"0";
　　　　}
　　　　return resultStr;
　　}
　　else{
　　　　if ((strLen - dotPos - 1) >= nAfterDot){
　　　　　　nAfter = dotPos + nAfterDot + 1;
　　　　　　nTen =1;
　　　　　　for(j=0;j<nAfterDot;j++){
　　　　　　　　nTen = nTen*10;
　　　　　　}
　　　　　　resultStr = Math.round(parseFloat(srcStr)*nTen)/nTen;
            
            ret = "" + resultStr + "";
            retLenth = ret.length;
            retPos = ret.indexOf(".", 0);
            if(retPos == -1){
                ret = ret + ".";
                for(i = 0; i < nAfterDot; i++){
                    ret = ret + "0";
                }
            }
            
　　　　　　return ret;
　　　　}
　　　　else{
　　　　　　resultStr = srcStr;
　　　　　　for (i=0;i<(nAfterDot - strLen + dotPos + 1);i++){
　　　　　　　　resultStr = resultStr+"0";
　　　　　　}
　　　　　　return resultStr;
　　　　}
　　}
} 

//checkbox 名字是name_0......10....
function selectAllRule(isCheck, name, num)
{
    if(isCheck)
    {
        selectAllCheckBoxRule(name,num);
    }
    else
    {
        unselectAllCheckBoxRule(name,num);
    }
}

function selectAllCheckBoxRule(name,num)
{
    var i ;
  
  //没有checkbox
  if (num==0) return;
  
  //只有一个checkbox
  if (num==1)
  {
    if(!document.all(name+"_0").disabled)
        document.all(name+"_0").checked = true;
    return ;
  }
    
  //多个checkbox
  for(i=0;i<num;i++)
  {
    if(!document.all(name+"_"+i).disabled)
        document.all(name+"_"+i).checked = true;
  }
}
function unselectAllCheckBoxRule(name,num)
{
    var i ;
  
  //没有checkbox
  if (num==0) return;
  
  //只有一个checkbox
  if (num==1)
  {
    if(!document.all(name+"_0").disabled)
        document.all(name+"_0").checked = false;
    return ;
  }
    
  //多个checkbox
  for(i=0;i<num;i++)
  {
    if(!document.all(name+"_"+i).disabled)
        document.all(name+"_"+i).checked = false;
  }
}

// 时间日期选择框
function selectDate(name, defaultVal)
{
//  var d = GetValue(name);     
    var d = defaultVal;
    var k=showModalDialog("/gw/framework/calendar/selectdate.htm",d,"dialogWidth:326px;status:no;dialogHeight:335px");
    if(k!=null) SetValue(name,k);
}

//时间日期历史选择框
function selectDateHis(name, defaultVal)
{
//  var d = GetValue(name);     
    var d = defaultVal;
    var k=showModalDialog("/gw/framework/calendarHis/selectdate.htm",d,"dialogWidth:326px;status:no;dialogHeight:335px");
    if(k!=null) SetValue(name,k);
}